"""
  循环语句: while循环, for循环.
"""

num = 1
while num <= 10:
    # print语句打印结果会自动换行. end= 可以设置.
    print(num, end=' ')
    num += 1
print()

print("======================================================")
# 计算 1 - 100 的和
s = 0
n = 1
while n <= 100:
    s += n
    n += 1
print(f"s = {s}")

# 计算 n 的阶层
result = 1
i = 1
n = int(input("请输入一个整数: "))
while i <= n:
    result *= i
    i += 1
print(f"{n} 的阶层为: {result}")

# 求 1! + 2! + ... + n!
n = int(input("请输入一个大于2的正整数: "))
result = 0
tmp = 1
i = 1
while i <= n:
    tmp *= i
    result += tmp
    i += 1
print(f"1! + 2! + ... + {n}! = {result}")


print("======================================================")


# for 循环语法格式:
# for 循环变量 in 可迭代对象
#       循环体

# 打印 1 - 10
# range 是一个内建函数 起到的效果就是得到一个 "可迭代对象",
# 这个可迭代对象中就包含了一系列的整数. range(beg,end) --> [beg,end) --> 左闭右开.
for i in range(1, 11):
    print(f"{i}", end=' '),
print()
print("======================================================")

# 打印 2, 4, 6, 8, 10 该如何打印呢?
# range 还提供了第三个参数, 表示 "步长", 步长默认是 1.
for i in range(2, 12, 2):
    print(f"{i}", end=' '),
print()
print("======================================================")

# 打印 10 - 1 呢??
num = 10
while num >= 1:
    print(num, end=' ')
    num -= 1
print()

for i in range(10, 0, -1):
    print(i, end=' ')
print()
print("======================================================")

# 求 1 + 2 + 3 + ... + 100
theSum = 0  # shift + f6 快速修改变量名.
for i in range(1, 101):
    theSum += i
print(f"sum = {theSum}")

# continue 与 break 用法和 java 中相同, 不在过多介绍.
